package groupId.api;


import com.fasterxml.jackson.databind.util.JSONPObject;
import groupId.task.*;
import okhttp3.ResponseBody;
import retrofit2.Call;
import retrofit2.http.*;

/**
 * 电信运营商
 */
public interface CarrierApi {

    /**
     * 创建任务
     *
     * @param req
     * @return
     */
    @POST("/carrier/v3/tasks")
    Call<TaskCreateRsp> createTask(@Body TaskCreateReq req);

    /**
     * 查询任务状态
     *
     * @param taskId
     * @return
     */
    @GET("/carrier/v3/tasks/{taskid}/status")
    Call<TaskStatusRsp> getTaskStatus(@Path("taskid") String taskId);

    /**
     * 输入验证码
     *
     * @param taskId
     * @return
     */
    @POST("/carrier/v3/tasks/{taskid}/input")
    Call<TaskVoidRsp> input(@Path("taskid") String taskId, @Body UserInput input);

    /**
     * 获取手机基本信息
     *
     * @param mobile
     * @param taskId
     * @return
     */
//    @GET("/carrier/v3/mobiles/{mobile}/basic")
//    Call<MobileBasicV3> getMobileBasic(@Path("mobile") String mobile, @Query("task_id") String taskId);

    /**
     * 获取手机账单信息
     *
     * @param mobile
     * @param options
     * @return
     */
//    @GET("/carrier/v3/mobiles/{mobile}/bill")
//    Call<BillDetail> getBills(@Path("mobile") String mobile, @QueryMap Map<String, String> options);

    /**
     * 获取手机语音信息
     *
     * @param mobile
     * @param options
     * @return
     */
//    @GET("/carrier/v3/mobiles/{mobile}/call")
//    Call<VoiceCallDetailList> getVoiceCalls(@Path("mobile") String mobile, @QueryMap Map<String, String> options);

    /**
     * 获取手机短彩信信息
     *
     * @param mobile
     * @param options
     * @return
     */
//    @GET("/carrier/v3/mobiles/{mobile}/sms")
//    Call<ShortMessageDetailV2> getShortMessages(@Path("mobile") String mobile, @QueryMap Map<String, String> options);


    @GET("/carrier/v3/mobiles/{mobile}/mxdata")
    Call<Object> getMxData(@Path("mobile") String mobile, @Query("task_id") String taskId);

    @GET("/carrier/v3/mobiles/{mobile}/mxreport")
    Call<Object> getReportBasic(@Path("mobile") String mobile, @Query("name") String name, @Query("idcard") String idCard, @Query("task_id") String taskId, @Query("contact") String contact);

}
